<?php
/**
 * Created by PhpStorm.
 * User:
 * Date:
 * Time: 下午2:59
 */

namespace App\Common\RedisCache;


interface Cache
{
    /**
     * 设置key生成参数
     * @param array $parameter
     * @return $this
     */
    function setKeyParameter(array $parameter);

    /**
     * 获取key
     * @return string
     */
    function getKey();

    /**
     * 设置值
     * @param $value
     * @return mixed
     */
    function set($value);

    /**
     * 获取值
     * @param string $key
     * @return mixed
     */
    function get($key = '');

    /**
     * 删除key
     * @param string $key
     * @return mixed
     */
    function del($key = ''): int ;

    /**
     * 是否存在key
     * @param string $key
     * @return bool
     */
    function exists($key = ''): bool ;

    /**
     * 设置过期（秒）
     * ttl = 0 清除过期
     * @param string $key
     * @param int $ttl
     * @return bool
     */
    function expire($key = '', $ttl = -1): bool ;
}
